Dreamweaver CC и неклавиатурные символы

Новиков М.Г.
30.10.2005
переработано: 10.01.2014

Примечание: Всё нижеописанное справедливо и для всех предыдущих версий!

Содержание:

Вступление

Из всех систем разработки сайтов, редактор DreamWeaver, пожалуй, самый удобный. Всем он хорош, но, как и в других аналогичных системах, не хватает в нем возможности оперативно вставлять в текст страницы сайта такие важные символы, как, например, тире (—) или угловые кавычки («»), а также другие полезные символы, имеющиеся в кодировке Unicode. Добраться до некоторых из этих знаков можно, но это отнимает несколько драгоценных секунд и сильно отвлекает внимание от набора текста. Тем не менее, DreamWeaver построен таким образом, что позволяет дополнять себя новыми функциями, что мы и используем для решения нашей задачи.

Сначала мы создадим новые функции вставки нужных нам символов, написав их на Javascript, а затем подкорректируем файл конфигурации меню, включив туда новые команды вызова этих функций и присвоив им удобные сочетания клавиш.

[Вернуться в начало]

Этап 1. Создание личного профиля меню.

  1. Запустим DreamWeaver и откроем Edit Keyboard Shortcuts... (Правка → Сочетания клавиш...)
  2. Задублируем текущую конфигурацию, нажав кнопку Duplicate Set (Дублировать набор), введя произвольное название и нажав ОК.
  3. Нажмём ОК в основном окне настроек. Создастся файл личной конфигурации меню menus.xml. Если программа попросит перезагрузки, перезагрузим её.

Теперь откроем папку:

%APPDATA%\Adobe\Dreamweaver CC\xx_XX\Configuration\

где xx_XX — имя локали (ru_RU, en_US и т.п.)

и создадим в этой папке новую папку — CommandsMy. На этом подготовительный этап 1 будет завершён. Кстати, папку CommandsMy со всем необходимым содержимым, описанным в следующем этапе, вы можете скачать у меня.

[Вернуться в начало]

Этап 2. Создание файлов команд.

Файл команды вставки символа пишется в «Блокноте» в виде пустой web-странички, которая при загрузке вызывает функцию на языке Javascript. Функция состоит из 3 действий. Сначала проверяется доступность текста, в который должен быть вставлен символ, затем следует собственно команда вставки, а затем подается команда нажатия стрелки вправо, чтобы снять установленное на вставленном символе выделение и установить курсор после вставленного символа:

<HTML>
    <HEAD>
        <SCRIPT LANGUAGE="javascript">
        <!--
            function runCommand()
            {
                if (dw.getFocus() != 'browser' && dw.getDocumentDOM() != null && 
                    dw.getDocumentDOM().getParseMode() == 'html')
                {
                    dw.getDocumentDOM().insertHTML('&#xAB;');
                    dw.getDocumentDOM().arrowRight();
                }
            }
        // -->
        </SCRIPT>
    </HEAD>
    <BODY onLoad="runCommand()">
    </BODY>
</HTML>

Создадим в папке «CommandsMy», скажем, 11 таких файлов вставки наиболее часто встречающихся символов. Файлы должны различаться кодом вставляемого символа (выделенный фрагмент). Имена файлам можно дать, исходя, например, из шестнадцатеричных кодов вставляемых символов. Расширение файлов должно быть «htm», например:

x00AB.htm

Левая угловая кавычка «ёлочка»
x00BB.htm Правая угловая кавычка «ёлочка»
x201C.htm Правая кавычка „лапка“
x201E.htm Левая кавычка „лапка“
x2013.htm Короткое тире –
x2014.htm Тире —
x2026.htm Многоточие …
x2190.htm Стрелка влево ←
x2192.htm Стрелка вправо →
x2212.htm Знак минус −
x2116.htm Номер №

Важные примечания:

  1. В HTML-код страницы будет вставляться не сам символ, а т.н. символьный примитив, то есть числовая подстановка — код символа. Благодаря этому обозреватель будет понимать, что данный символ он должен взять именно из Unicode. Однако, если код символа попадает в запрещённый диапазон управляющих кодов Unicode — 80–9F, обозреватель подставляет символ из текущей 1-байтовой кодировки.
  2. Хотя символы угловых кавычек (а также параграфа, градуса и т.п.) имеются в русской кодировке windows-1251, и даже не попадают в запрещённый диапазон управляющих кодов 80–9F, непосредственно использовать их в HTML-коде не следует. Из-за особенностей трансляции кодировок и использования других шрифтов на других платформах они могут выглядеть некорректно. Вдобавок, эти символы могут потеряться при переводе текста в другую кодировку даже в пределах windows-систем. Парадоксально, но, например, в официальной русской кодировке ISO 8859-5 вообще нет символов угловых кавычек. Поэтому необходимо использовать смвольные примитивы (подстановки), которые будут вытаскивать эти символы именно из Unicode, даже если их коды совпадают с кодами тех же символов текущей кодировки.
  3. При кодировании символов я использую шестнадцатеричные числа, поскольку считаю их более уместными (официальная документация символов Unicode использует именно такой формат), однако вы можете использовать и десятичную нотацию. Тогда десятичное число надо записывать без буквы «x». Также, вместо числовых подстановок можно использовать мнемонические, которые по умолчанию вставляет Dreamweaver при вставке специальных символов. Тогда из символьного примитива убирается и символ «#». Но, на мой взгляд, мнемоника только запутывают, да и может не поддерживаться некоторыми старыми обозревателями.

[Вернуться в начало]

Этап 3. Настройка конфигурационного файла меню.

Откроем в «Блокноте» созданный DreamWeaver'ом ещё на первом этапе файл:

%APPDATA%\Adobe\Dreamweaver CC\ru_RU\Configuration\Menus\menus.xml

и в самый конец раздела

<menu id="DWMenu_Commands"…

</menu>

перед закрывающим тегом добавим:

<separator />
<menuitem name="— Тире (x2014)"file="CommandsMy/x2014.htm" id="DWMenu_Insert_x2014" key="Cmd+Opt+-" />
<menuitem name="– Короткое тире (x2013)"file="CommandsMy/x2013.htm" id="DWMenu_Insert_x2013" key="Cmd+Opt+Shift+-"/>
<menuitem name="− Минус (x2212)"file="CommandsMy/x2212.htm" id="DWMenu_Insert_x2212" key="Cmd+Opt+Shift+M" />
<menuitem name="« Левая угловая кавычка (x00AB)"file="CommandsMy/x00AB.htm" id="DWMenu_Insert_x00AB" key="Cmd+9" />
<menuitem name="» Правая угловая кавычка (x00BB)"file="CommandsMy/x00BB.htm" id="DWMenu_Insert_x00BB" key="Cmd+0" />
<menuitem name="„ Левая кавычка лапка (x201E)"file="CommandsMy/x201E.htm" id="DWMenu_Insert_x201E" key="Cmd+Opt+9" />
<menuitem name="“ Правая кавычка лапка (x201C)"file="CommandsMy/x201C.htm" id="DWMenu_Insert_x201C" key="Cmd+Opt+0" />
<menuitem name="… Многоточие (x2026)"file="CommandsMy/x2026.htm" id="DWMenu_Insert_x2026" key="Cmd+Opt+D" />
<menuitem name="← Стрелка влево (x2190)"file="CommandsMy/x2190.htm" id="DWMenu_Insert_x2190" key="Cmd+Opt+Shift+9" />
<menuitem name="→ Стрелка вправо (x2192)"file="CommandsMy/x2192.htm" id="DWMenu_Insert_x2192" key="Cmd+Opt+Shift+0" />
<menuitem name="№ Номер (x2116)"file="CommandsMy/x2116.htm" id="DWMenu_Insert_x2116" key="Cmd+Opt+Shift+3" />

и сохраним в кодировке UTF-8.

Как вариант сохранению в кодировке UTF-8, можно сохранить и в однобайтовой кодировке (ANSI), но тогда в самое начало файла придётся добавить строку:

<?xml version="1.0" encoding="windows-1251"?>

и не использовать символ «Минус» в тексте названия пункта меню. Остальные использованные в названиях символы последняя версия DreamWeaver находит в однобайтовой кодировке.

Замечу, что символы стрелок DreamWeaver прежних версий почему-то в меню не отображал даже при сохранении файла конфигурации меню в кодировке UTF-8. Если это случилось, то заменим их на два символа, дающих вместе изображение стрелки (-> или <-).

После сохранения файла конфигурации заставим DreamWeaver перечитать его. Для этого или просто перезагрузим его, или найдём панель вставки «Insert» (Ctrl+F2), и при нажатой клавише «Ctrl», щёлкаем левой кнопкой мыши по кнопке выбора группы. В открывшемся меню выбираем отсутствовавший при обычном нажатии пункт «Reload Extensions» (Перезагрузить расширения).

Теперь переключаемся на латинскую раскладку и снова откроем Edit → Keyboard Shortcuts... (Правка → Сочетания клавиш…) и найдём наши новые команды. Нам надо пересоздать три горячие клавиши, использующие цифру 0, поскольку они конфликтуют с уже имеющимися горячими клавишами. В процессе пересоздания старые сочетания отменяются. Для этого удалим и снова создадим горячую клавишу. Возникнет предупреждение, что такая комбинация уже используется, но мы всё равно нажимаем «правка», подтверждаем переопределение и сохраняем настройки. Если старые сочетания вами используются, нужно подумать об использовании других запоминающихся сочетаний для наших команд.

[Вернуться в начало]

Заключение

Итак, в меню «Commands» у вас появилось 11 новых пунктов, позволяющих вставлять в текст страницы нужные нам символы. Эти же символы можно набирать и с клавиатуры нажатием на горячие клавиши, указанные справа от названий пунктов меню.

Более подробно о продвинутых методах настройки старой версии DreamWeaver MX можно прочитать тут:

http://flash-ripper.com/articles/dreamweaver/2002_08_17_customizing_dwmx_contents.htm

Официальная страница программы:

http://www.adobe.com/ru/products/dreamweaver